/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package proy1sistdistribuidos.modelo;

import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import net.jxta.discovery.DiscoveryEvent;
import net.jxta.discovery.DiscoveryListener;
import net.jxta.document.Advertisement;
import proy1sistdistribuidos.control.advertisements.AdvertisementImagenImpl;

/**
 *
 * @author Juan Felipe
 */
public class BusquedaPersonaListener implements DiscoveryListener{
    private List<AdvertisementImagenImpl> lista = new ArrayList<AdvertisementImagenImpl>();
    private int tipo;
    private String segundoAtributo;
    private AdministradorJXTA administrador;

    public BusquedaPersonaListener(int tipo, String segundoAtributo, AdministradorJXTA admin) {
        this.tipo = tipo;
        this.segundoAtributo = segundoAtributo;
        this.administrador = admin;
    }
    
    
    
    public void discoveryEvent(DiscoveryEvent de) {
       //System.out.println("HAHAHAHAHAHA");

        Enumeration<Advertisement> respuestas = de.getSearchResults();
        
        
        while (respuestas.hasMoreElements()){
            Object advertisement = respuestas.nextElement();
            /*if(advertisement instanceof MyAdvertisementRecurso){
                MyAdvertisementRecurso ad = (MyAdvertisementRecurso)advertisement;
                if( !ad.getNombreNodo().equals(nombreNodo)){
                    NodoRemoto nr = new NodoRemoto(ad.getNombreNodo(), ad.getDireccionIP());
                    nodosEncontrados.add(nr);
                }
            }
            else */if(advertisement instanceof AdvertisementImagenImpl){
               AdvertisementImagenImpl ad = (AdvertisementImagenImpl)advertisement;
               if(ad.getListaPersonas()!=null && !ad.getListaPersonas().isEmpty()){ 
                   for(String[] dato: ad.getListaPersonas()){
                       if(this.getTipo()==0){  //fue por nombre
                           if(dato[1]!=null && dato[1].contains(segundoAtributo)){
                               this.getLista().add(ad);
                               System.out.println("Encontré esto:"+dato[0]+" "+dato[1]+" etiqueta: "+ad.getEtiqueta());
                           }
                       }else if(this.getTipo()==1){  //fue por apellido
                           if(dato[0]!=null && dato[0].contains(segundoAtributo)){
                               this.getLista().add(ad);
                               System.out.println("Encontré esto:"+dato[0]+" "+dato[1]+" etiqueta: "+ad.getEtiqueta());
                           }
                       }
                   }
               } 
               
            }
        }

        //*setChanged();
        //notifyObservers(nodosEncontrados);
    }

    

    /**
     * @return the tipo
     */
    public int getTipo() {
        return tipo;
    }

    /**
     * @param tipo the tipo to set
     */
    public void setTipo(int tipo) {
        this.tipo = tipo;
    }

    /**
     * @return the lista
     */
    public List<AdvertisementImagenImpl> getLista() {
        return lista;
    }

    /**
     * @param lista the lista to set
     */
    public void setLista(List<AdvertisementImagenImpl> lista) {
        this.lista = lista;
    }

    
    
}
